// Copyright 叶湘 ( weixin:yexiang841, email:yexiang841@qq.com ), Shitouren Studio. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "Q3D_CPPC_InputState.generated.h"

/**
 * 
 */
UCLASS(Blueprintable, ClassGroup = (SCE), meta = (Tooltip = "InputState 管理器(C++)", BlueprintSpawnableComponent))
class Q3D_LIB_API UQ3D_CPPC_InputState : public UActorComponent
{
	GENERATED_BODY()

public:
	// Sets default values for this component's properties
	UQ3D_CPPC_InputState();

protected:
	// Called when the game starts
	virtual void BeginPlay() override;

public:
	// Called every frame
	virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override;

public:
	UFUNCTION(BlueprintCallable, Category = Q3D_InputState, meta = (Tooltip = "初始化"))
	void Q3D_F_Model_Init();

protected:
	UFUNCTION(BlueprintCallable, Category = Q3D_InputState, meta = (Tooltip = "根据传入的 DataTable 生成 ActionMapping，存入 Input"))
	void Q3D_F_Model_SetActionMapping(UDataTable *ptr_dt_input_actiion_mapping);

	UFUNCTION(BlueprintCallable, Category = Q3D_InputState, meta = (Tooltip = "根据传入的 DataTable 生成 AxisMapping，存入 InputState"))
	void Q3D_F_Model_SetAxisMapping(UDataTable *ptr_dt_input_axis_mapping);
};
